// 下载文档流
export const download = (res: any, type: any, filename: any) => {
     let Filetype = ''
     if (type == 'word') {
          Filetype = 'application/msword'
     } else if (type == 'zip') {
          Filetype = 'application/zip'
     } else if (type == 'pdf') {
          Filetype = 'application/pdf;chartset=UTF-8'
     } else if (type == 'xls') {
          Filetype = 'application/vnd.ms-excel'
     } else if (type == 'xlsx') {
          Filetype = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
     } else if (type == 'dxf') {
          // 添加对DXF格式的支持
          Filetype = 'application/dxf'
     }
     // 创建blob对象，解析流数据
     const blob = new Blob([res], {
          // 如果后端没返回下载文件类型，则需要手动设置：type: 'application/pdf;chartset=UTF-8' 表示下载文档为pdf，如果是word则设置为'application/msword'，zip为 'application/zip'
          type: Filetype,
     })
     const a = document.createElement('a')
     // 兼容webkix浏览器，处置webkit浏览器中href自动添加blob前缀，默认在浏览器打开而不是下载
     const URL = window.URL || window.webkitURL
     // 根据解析后的blob对象创建URL 对象
     const herf = URL.createObjectURL(blob)
     // 下载链接
     a.href = herf
     // 下载文件名,如果后端没有返回，可以自己写a.download = '文件.pdf'
     a.download = filename
     document.body.appendChild(a)
     a.click()
     document.body.removeChild(a)
     // 在内存中移除URL 对象
     window.URL.revokeObjectURL(herf)
}
export const downloadToBase64 = (base64String: string, fileName: string) => {
     // 将你的base64字符串替换到这里
     // var base64String = 'data:application/vnd.ms-excel;base64,你的base64字符串'
     // var fileName = 'output.xlsx'

     // 将base64字符串转换为Blob对象
     const arr: any = base64String.split(',')
     const mime = arr[0].match(/:(.*?);/)[1]
     const bstr = atob(arr[1])
     let n = bstr.length
     const u8arr = new Uint8Array(n)
     while (n--) {
          u8arr[n] = bstr.charCodeAt(n)
     }
     const blob = new Blob([u8arr], { type: mime })

     // 创建下载链接
     const url = URL.createObjectURL(blob)

     // 创建下载链接的a标签
     const a = document.createElement('a')
     a.href = url
     a.download = fileName
     document.body.appendChild(a)
     a.click()
     window.URL.revokeObjectURL(url)
     a.remove()
}
